package es.exitae.ejerciciofinal;

import static es.exitae.ejerciciofinal.utils.Constantes.CODIGO_EDITAR_LUGAR;
import static es.exitae.ejerciciofinal.utils.Constantes.RESULT_DELETE;
import static es.exitae.ejerciciofinal.utils.Constantes.TAG_ID_LUGAR;
import static es.exitae.ejerciciofinal.utils.Constantes.TAG_REQUEST_CODE;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import es.exitae.ejerciciofinal.dto.CargaDTOs;
import es.exitae.ejerciciofinal.dto.LugarDTO;
import es.exitae.ejerciciofinal.servicios.ServicioGestionImagenes;
import es.exitae.ejerciciofinal.utils.Traza;
import es.exitae.ejerciciofinal.utils.enums.Metodo;

public class MostrarLugarActivity extends Activity implements OnClickListener
{
	private TextView txtNombre, txtDescripcion;
	private Button btnEditar;
	private ImageView imgFoto;

	private Intent intent;
	private LugarDTO lugar;
	private ServicioGestionImagenes servicio;
	private int idLugar;

	private void cargarDatos(int idLugar)
	{
		Traza.d(Metodo.ENTRADA);
		CargaDTOs cargar = new CargaDTOs(getContentResolver());
		lugar = cargar.cargarLugarDTO(idLugar);

		//Cargamos datos de los componentes de la vista y sus eventos
		txtNombre.setText(lugar.getNombre());
		txtDescripcion.setText(lugar.getDescripcion());
		
		servicio.cargarImagenDesdeUri(lugar.getFotoUri());
		servicio.actualizarImagenView(imgFoto);
		Traza.d(Metodo.SALIDA);
	}
	
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data)
	{
		if (requestCode == CODIGO_EDITAR_LUGAR)
		{
			if (resultCode == RESULT_DELETE)
				finish();
			if (resultCode == RESULT_OK)
				cargarDatos(idLugar);
		}
	}

	@Override
	public void onClick(View v)
	{
		intent.setClass(this, EditarLugarActivity.class);
		intent.putExtra(TAG_REQUEST_CODE, CODIGO_EDITAR_LUGAR);

		startActivityForResult(intent, CODIGO_EDITAR_LUGAR);
	}

	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		Traza.d(Metodo.ENTRADA);
		super.onCreate(savedInstanceState);
		setContentView(R.layout.mostrar_activity);

		//Cargamos componentes de la vista
		txtNombre = (TextView) findViewById(R.id.txtNombre);
		txtDescripcion = (TextView) findViewById(R.id.txtDescripcion);
		imgFoto = (ImageView)findViewById(R.id.imgFoto);
		btnEditar = (Button) findViewById(R.id.btnEditar);
		btnEditar.setOnClickListener(this);

		//cargamos componentes necesarios
		intent = getIntent();
		idLugar = intent.getIntExtra(TAG_ID_LUGAR, 0);
		servicio = new ServicioGestionImagenes(getContentResolver());

		Traza.d(Metodo.SALIDA);
	}

	@Override
	protected void onDestroy()
	{
		servicio.cleanMemory();
		super.onDestroy();
	}
	
	@Override
	protected void onResume()
	{
		Traza.d(Metodo.ENTRADA);
		cargarDatos(idLugar);
		super.onResume();
		Traza.d(Metodo.SALIDA);
	}
}
